1. Field of the Invention
This invention relates in general to a packet forwarding in a network, and more particularly to a method and apparatus for avoiding packet reordering in multiple-class, multiple-priority networks using a queue.
2. Description of Related Art
The primary Internet transport protocols, most importantly the Transmission Control Protocol (TCP), have been very carefully designed and tuned over the past 25 years to support a service model of graceful degradation, where connections are essentially never denied and every connection""s performance simply degrades as the network load increases.
Originally designed to interconnect the huge, heterogeneous assortment of computers within the U.S. Government, TCP/IP has since grown into a complete family of xe2x80x9copenxe2x80x9d (royalty-free) protocols that enable computers to communicate over any combination of local- and wide-area network links. Bundled for many years with UNIX, commercial implementations of TCP/IP are now available for every make and model of computer system. The recent explosive growth in demand for access to the Internet, which is based on TCP/IP, has established TCP/IP as the computer industry""s de facto network protocol standard.
The various members of the TCP/IP protocol family work cooperatively in a xe2x80x9cstackedxe2x80x9d architecture. When a network user (client) requests a certain kind of service, TCP/IP""s upper-level protocols invoke the functions of lower protocols to form the necessary network interface.
For example, when a user runs a World Wide Web (WWW) application on a client computer and requests a file to be downloaded from an hyper-text transfer protocol (HTTP) server, the client system""s WWW application and its underlying TCP/IP protocol stack software: 1) formulate a protocol request; 2) enclose (encapsulate) the request within one or more Transmission Control Protocol (TCP) packets to ensure its acknowledged delivery; 3) encapsulate each resultant TCP packet within an IP packet, which includes the network address (IP address and port number) of the server; and 4) depending on the underlying LAN or WAN network hardware, encapsulate each IP packet within the appropriate frame for transmission.
The corresponding TCP/IP protocol stack on the server, in turn, decapsulates the incoming frame and acts on the request it contains. Later, the server delivers the requested file to the client by similarly encapsulating and transmitting it through the network.
One of TCP/IP""s greatest strengths is its extensible architecture. Over the years, new protocols have occasionally been added to TCP/IP to support innovative network hardware or deliver new kinds of services, without disrupting the operation of existing protocols. New protocols were introduced at the same architectural level and used as an alternative to prior protocols that were found to be insufficient under new applications. As one such example, consider the User Datagram Protocol (UDP), whose introduction as an alternative to TCPI facilitated network applications like the Network File System (NFS) and the Simple Network Management Protocol (SNMP).
While new protocols can be added relatively painlessly to the TCP/IP family, changes to established protocols unavoidably affect existing applications. Consequently, throughout TCP/IP""s history, such changes have been made very carefully, and only when absolutely necessary. Changing any protocol in a widely adopted system like TCP/IP can put millions of network users at risk.
Nowhere within TCP/IP is the potential risk of change greater than at the family""s central routing function: the Internet Protocol. IP defines the addressing scheme for all TCP/IP devices, and is the central implementation issue in the many thousands of routers that serve the needs of the worldwide Internet community 24 hours a day.
For years now, the members of TCP/IP""s regulating organization, the Internet Engineering Task Force (IETF), have known that the current version of IP is in need of an overhaul. After perhaps the most careful design and review process in the history of networking, that long-awaited revision is nearing completion.
Developed over many years of careful design and exhaustive review, the IPv6 (IPng) addressing scheme is radically new, based on the demographic nature of the community it will serve. At the same time, IPv6 includes provisions for upward compatibility from and interpretability with today""s IPv4 network architecture.
The service model for which the next generation of the Internet strives is neither strictly the circuit switched model of the telephone system, nor the best-efforts model of the current Internet, but rather an integrated approach where Quality of Service (QoS) traffic coexists with best-effort traffic. The primary design goal behind this approach is to share network resources in such a way that one can simultaneously achieve the benefits of circuit-switched networks (performance guarantees) and the benefits of best-efforts networks (low cost due to resource sharing).
From a desire to find an approach that would be simple, scalable, and relatively easy to deploy in a predominantly best-efforts Internet, the concept of Differentiated Services has originated. In addition, within differentiated services there is significant emphasis on allowing for meaningful end-to-end services to be provisioned across multiple, separately administered network clouds and on keeping the consequent business models as simple as possible.
Accordingly, the goal of the evolving IETF differentiated services (diffserv) framework is to provide a means of offering a spectrum of services in the Internet without the need for per-flow state and signaling in every router. By carefully aggregating a multitude of QoS-enabled flows into a small number of aggregates that are given a small number of differentiated treatments within the network, diffserv eliminates the need to recognize and store information about each individual flow in core routers. This effort to scalability succeeds by combining a small number of simple packet treatments with a larger number of per-flow policing policies to provide a broad and flexible range of services. Each diffserv flow is policed and marked at the first trusted downstream router according to a contracted service profile (usually a token bucket filter). When viewed from the perspective of a network administrator, the first trusted downstream router is a xe2x80x9cleaf routerxe2x80x9d at the periphery of the trusted network. Downstream from the nearest leaf router, a diffserv flow is mingled with similar diffserv traffic into an aggregate. All subsequent forwarding and policing is performed on aggregates.
Current proposals for marking packets designate the xe2x80x9cper-hop behaviorsxe2x80x9d (PHBs) that packets are to receive by setting a few bits in the IPv4 header TOS octet or the IPv6 Traffic Class octetxe2x80x94now renamed the xe2x80x9cDS fieldxe2x80x9d. The PHBs are expected to be simple and define forwarding behaviors that may suggest, but do not require, a particular implementation or queuing discipline. Examples include: xe2x80x9cdrop me lastxe2x80x9d or xe2x80x9cforward me firstxe2x80x9d. Keeping the number of PHBs small and the behaviors themselves simple should allow router designers to engineer diffserv packet forwarders that operate at very high packet per second rates.
Another important benefit of handling traffic aggregates is to simplify the construction of end-to-end services from the concatenation of multiple cloud-to-cloud services. Individual network clouds contract with neighboring clouds to provide differentiated service contracts for different traffic aggregates. Like the per-flow contracts, aggregate contracts are characterized by profiles (again, often based on token bucket filters). By carefully enforcing the aggregate traffic profiles and ensuring that new traffic is not admitted that exceeds any aggregate profile, well-defined end-to-end services may be provided over chains of separately administered clouds. Furthermore, since each aggregate contracts exists only at the boundary between two clouds, the result is a set of simple bilateral service agreements that mimic current inter-provider exchange agreements.
As suggested above, multiple priority networks have been proposed to support differentiated services over the IP networks. In these models, customer traffic carries a codepoint in the Differentiated Services (DS) field in the IP header that identifies the Per-Hop Behavior (PHB) the traffic is entitled to at each hop en route to its destination. The codepoints index into an array that determines the PHB, and hence different levels of service. Currently, work is underway in IETF to standardize the codepoints and the associated PHBs, so that vendors can implement them in their equipment and ISPs can offer services using the standards-based implementations.
Generally speaking, a PHB corresponds to a queue that services a particular priority class, and inside each class, there are two sub-classes. One of the sub-classes identifies the traffic (in that particular class) that is behaving according to the agreed contract. This sub-class is called xe2x80x9cin-profilexe2x80x9d traffic. The other sub-class is the one that is exceeding the limit""s of the agreed contract, and is thus called xe2x80x9cout-profilexe2x80x9d traffic. Separate queues for in-profile and out-profile traffic are anticipated for each class, and the different classes are serviced using a scheduling discipline such as Weighted Fair Queuing (WFQ) or Weighted Round Robin (WRR) or simple priority queuing. In each case, it is proposed that the in-profile traffic of each class be serviced ahead of the out-profile traffic, possibly in order to provide fairness to various classes of traffic.
However, there exists an important problem associated with the proposed architecture of the differentiated services. The packet reordering creates a problem due to the use of multiple priority queues for the traffic belonging to the same class. This problem arises because the traffic from a source can change from in-profile to out-profile (and then back to in-profile) dynamically, and, thus get serviced differently at a router or a switch. The result is that the packets may arrive out-of-order at a receiver, with serious implications on the application and network performance. In audio and video applications, this reordering could destroy temporal ordering between different packets, producing a xe2x80x9cplay-aheadxe2x80x9d effect. For example, a word W(n+1) that is spoken after the word W(n) may get played back first at the receiver. For TCP, reordering produces duplicate acknowledgments resulting in wasteful retransmissions. Thus, it is clear that this important: problem has to be addressed in order to maintain acceptable performance for applications and the network.
It can be seen then that there is a need for a queue implementation technique that can be used in multiple-class, multiple-priority networks such as Differentiated Services networks to ensure that packets are serviced without reordering.
It can also be seen that there is a need for a queue implementation technique that maintains performance isolation between different classes under some scheduling disciplines.
It can also be seen that there is a need for a queue implementation that can identify scheduling disciplines which do not degrade the performance seen by the lower priority traffic classes.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method and apparatus for avoiding packet reordering in multiple-class, multiple-priority networks.
The present invention solves the above-described problems by providing a queue implementation technique that can be used in multiple-class, multiple-priority networks such as Differentiated Services networks to ensure that packets are serviced without reordering. The queue implementation technique maintains performance isolation between different classes under some scheduling disciplines and can identify scheduling disciplines which do not degrade the performance seen by the lower priority traffic classes.
A system in accordance with the principles of the present invention includes a first queue for receiving packets associated with a first traffic class, the packets being arranged in the first queue as in-profile packets and out-profile packets and a second queue for storing pointers associated with the out-profile packets, wherein the packets in the first queue comprise doubly-linking, and the pointers associated with the out-profile packets in the second queue point to corresponding out-profile packets in the first queue as well as to a previous and next element in the second queue.
Other embodiments of a system in accordance with the principles of the invention may include alternative or optional additional aspects. One such aspect of the present invention is that the size of the second queue is inversely proportional to the performance of processing the in-profile packets.
Another aspect of the present invention is that the packets in the first queue are serviced using simple priority queuing.
Another aspect of the present invention is that packets arriving at the first queue are serviced first.
Another aspect of the present invention is that corresponding pointers in the second queue are deleted and the pointers in the second queue are adjusted in response to an out-profile packet being serviced.
Another aspect of the present invention is that a corresponding packet in the first queue is deleted and the double-linking of the packets in the first queue is adjusted in response to an out-profile packet being dropped from the second queue ahead of its service from the second queue.
Another aspect of the present invention is that the first queue is a service queue and the second queue is a mirror queue.
Another aspect of the present invention is that the first queue and the second queue comprise a single memory device.
Another aspect of the present invention is that the first queue and the second queue comprise individual memory devices.
These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there are illustrated and described specific examples of an apparatus in accordance with the invention.